package com.shigen.demo.pattern.singleton;

/**
 * 静态内部类单例
 *  优点：性能高、线程安全、避免了内存浪费
 *  缺点：
 * @author shigenfu
 * @date 2022/8/14 11:50 上午
 */
public class LazyStaticInnerClassSingleton {

  private LazyStaticInnerClassSingleton() {
    // 防止通过反射的方式直接用构造方法创建对象
    if (lazyHolder.INSTANCE != null) {
      throw new RuntimeException("不能非法创建");
    }

  }

  public static LazyStaticInnerClassSingleton getInstance() {
    return lazyHolder.INSTANCE;
  }

  private final static class lazyHolder {

    private static final LazyStaticInnerClassSingleton INSTANCE = new LazyStaticInnerClassSingleton();
  }


}
